'\" t
.\"     Title: zmq_unbind
.\"    Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: 07/08/2019
.\"    Manual: 0MQ Manual
.\"    Source: 0MQ 4.3.2
.\"  Language: English
.\"
.TH "ZMQ_UNBIND" "3" "07/08/2019" "0MQ 4\&.3\&.2" "0MQ Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
zmq_unbind \- Stop accepting connections on a socket
.SH "SYNOPSIS"
.sp
int zmq_unbind (void \fI*socket\fR, const char \fI*endpoint\fR);
.SH "DESCRIPTION"
.sp
The \fIzmq_unbind()\fR function shall unbind a socket specified by the \fIsocket\fR argument from the endpoint specified by the \fIendpoint\fR argument\&.
.sp
Addionally the incoming message queue associated with the endpoint will be discarded\&. This means that after unbinding an endpoint it is possible to received messages originating from that same endpoint if they were already present in the incoming message queue before unbinding\&.
.sp
The \fIendpoint\fR argument is as described in \fBzmq_bind\fR(3)
.SS "Unbinding wild\-card address from a socket"
.sp
When wild\-card * \fIendpoint\fR (described in \fBzmq_tcp\fR(7), \fBzmq_ipc\fR(7) and \fBzmq_vmci\fR(7)) was used in \fIzmq_bind()\fR, the caller should use real \fIendpoint\fR obtained from the ZMQ_LAST_ENDPOINT socket option to unbind this \fIendpoint\fR from a socket\&.
.SH "RETURN VALUE"
.sp
The \fIzmq_unbind()\fR function shall return zero if successful\&. Otherwise it shall return \-1 and set \fIerrno\fR to one of the values defined below\&.
.SH "ERRORS"
.PP
\fBEINVAL\fR
.RS 4
The endpoint supplied is invalid\&.
.RE
.PP
\fBETERM\fR
.RS 4
The 0MQ
\fIcontext\fR
associated with the specified
\fIsocket\fR
was terminated\&.
.RE
.PP
\fBENOTSOCK\fR
.RS 4
The provided
\fIsocket\fR
was invalid\&.
.RE
.PP
\fBENOENT\fR
.RS 4
The endpoint supplied was not previously bound\&.
.RE
.SH "EXAMPLES"
.PP
\fBUnbind a subscriber socket from a TCP transport\fR. 
.sp
.if n \{\
.RS 4
.\}
.nf
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket (context, ZMQ_SUB);
assert (socket);
/* Connect it to the host server001, port 5555 using a TCP transport */
rc = zmq_bind (socket, "tcp://127\&.0\&.0\&.1:5555");
assert (rc == 0);
/* Disconnect from the previously connected endpoint */
rc = zmq_unbind (socket, "tcp://127\&.0\&.0\&.1:5555");
assert (rc == 0);
.fi
.if n \{\
.RE
.\}
.PP
\fBUnbind wild-card * binded socket\fR. 
.sp
.if n \{\
.RS 4
.\}
.nf
/* Create a ZMQ_SUB socket */
void *socket = zmq_socket (context, ZMQ_SUB);
assert (socket);
/* Bind it to the system\-assigned ephemeral port using a TCP transport */
rc = zmq_bind (socket, "tcp://127\&.0\&.0\&.1:*");
assert (rc == 0);
/* Obtain real endpoint */
const size_t buf_size = 32;
char buf[buf_size];
rc = zmq_getsockopt (socket, ZMQ_LAST_ENDPOINT, buf, (size_t *)&buf_size);
assert (rc == 0);
/* Unbind socket by real endpoint */
rc = zmq_unbind (socket, buf);
assert (rc == 0);
.fi
.if n \{\
.RE
.\}
.sp
.SH "NOTE"
.sp
Note that while the implementation is similar to \fIzmq_disconnect()\fR, the semantics are different and the two functions should not be used interchangeably\&. Bound sockets should be unbound, and connected sockets should be disconnected\&.
.SH "SEE ALSO"
.sp
\fBzmq_bind\fR(3) \fBzmq_socket\fR(3) \fBzmq\fR(7)
.SH "AUTHORS"
.sp
This page was written by the 0MQ community\&. To make a change please read the 0MQ Contribution Policy at \m[blue]\fBhttp://www\&.zeromq\&.org/docs:contributing\fR\m[]\&.
